iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
Security

為何我的資訊安全被遺忘了系列 第 24

為何我的資訊安全被遺忘了Day24-SM2加解密

  • 分享至 

  • xImage
  •  

SM2加密也是有2個人A和B,
首先A的回合(加密)
A會選擇一個隨機數k
這個k的值在1到n-1之間,包含1和n-1,n是基點G的order(階),意思是nG會等於無窮遠點。
A計算C1=kG=(x1,y1)
類似A在為了這個加密而做的公鑰,公鑰和昨日說的一樣是座標。
A計算S=hPB
h是橢圓曲線點的數量去除以n,PB是B的公鑰。
A計算kPB=(x2,y2)
A計算t=KDF(x_2∥y_2,klen)
KDF就是金鑰派生函數,klen是指訊息M的長度。
A計算C_2=M⨁t
很常使用訊息xor機密,這樣解密就能得到訊息M。
A計算C_3=H(x_2∥M∥y_2)
C3是做訊息驗證用的。
A把C=C_1∥C_2∥C_3給B
B的回合(解密)
B驗證C1是不是ECC的方程式
B計算S=hC_1
B計算d_B C_1=(x_2,y_2)
這邊是很常會用到的技巧,公鑰和私鑰的搭配。
B計算t=KDF(x_2∥y_2,klen)
B計算M^'=C_2⨁t
就如前面說的一樣,xor可以拿到訊息。
B計算u=H(x_2∥M'∥y_2)
B檢查u=C_3
B得到M’

加解密就這樣結束了,C1是公鑰加密、私密解密的技巧,C2是訊息保護,C3是驗證訊息用的。
https://ithelp.ithome.com.tw/upload/images/20240925/20140126zceOO3PHLk.jpg


上一篇
為何我的資訊安全被遺忘了Day23-SM2初始化
下一篇
為何我的資訊安全被遺忘了Day25-SM2金鑰交換
系列文
為何我的資訊安全被遺忘了30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言